Extensible chat rooms in a hosted chat environment

ABSTRACT

A method for extensible chat rooms in a hosted chat environment includes providing multiple different chat rooms, each executing in a separate process address space of at least one computing device. Each of the chat rooms includes a textual transcript of chat postings and a video feed of a subject. A catalog of extensions available for provisioning in connection with the different ones of the chat rooms is displayed to different moderators of the different ones of the chat rooms. Thereafter, in response to a selection of one of the extensions by one of the moderators, the selected one of the extensions is provisioned for use in connection with processing a particular event in a corresponding one of the chat rooms. Specifically, the extension pre-processes the particular event as the particular event occurs in the chat room before permitting the chat room to process the particular event.

BACKGROUND OF THE INVENTION Field of the Invention

The present invention relates to chat room management and moreparticularly to chat room event handling in a host chat roomenvironment.

Description of the Related Art

A chat room refers to on-line, synchronous conferencing over a computercommunications network. A chat room most commonly takes the form of areal-time interactive messaging session between a multiplicity ofindividuals sharing a common bounded view. The common bounded view mostoften is managed centrally by a chat server that processes inboundmessages received from different participants to a chat session andpresents those messages in the common bounded view for all of theparticipants to see. The modern chat room serves the primary purpose ofsharing share information by way of text messages with a group of otherusers. Generally speaking, the ability to converse with multiple peoplein the same conversation differentiates chat rooms from instantmessaging programs, which are more typically designed forperson-to-person communication.

Chat rooms have been incorporated into wider scale computingenvironments that range from social networks to enterprise conferencing.Chat rooms oftentimes are topical in nature and, as such, end users in aparticular chat room are generally connected via a shared interest orother similar connection. Chat rooms service a wide range of subjects,from the sublime to the risque.

Recent advances in chat room technology incorporate more than meretextual exchanges. To wit, shared video feeds are provided, as are filetransfer capabilities. Composite chat sessions integrate text with audioand video exchanges as well as file exchanges. The incorporation of suchcomposite media finds particular application in socially topical chatsession technologies. However, the utilization of composite media in achat session is resource intensive and not accessible by the ordinaryindividual seeking to provide a topical chat room to a set of end users.Consequently, chat hosting services have emerged to provide a computingplatform upon which individual subscribers may deploy individual chatrooms, each chat room being managed separately from other chat rooms,each chat room subsisting in isolation from other chat rooms.

Conventional chat room hosting provides a limited interface throughwhich a subscriber can deploy a themed chat room including a video feedtypically originating at a subscriber computer. More advanced chathosting facilities permit the subscriber to moderate postings to amanaged chat room. However, to fully provide a distinctive chat roomexperience, chat room subscribers providing a chat room in a hostedenvironment prefer to support a customized environment with customizedchat room logic. To do so, however, requires the hosting environment toexpose the underlying computing infrastructure to the programmatic flawsof the customized chat room logic. Further, to do so provides for asecurity exposure.

BRIEF SUMMARY OF THE INVENTION

Embodiments of the present invention address deficiencies of the art inrespect to hosted chat room management and provide a novel andnon-obvious method, system and computer program product for extensiblechat rooms in a hosted chat environment. In an embodiment of theinvention, a method for extensible chat rooms in a hosted chatenvironment is provided. The method includes providing multipledifferent chat rooms, each executing in a separate process address spaceof a computing device in a hosted chat room environment, each of thechat rooms including a textual transcript of chat postings and a videofeed of a subject. The method also includes displaying to differentmoderators of different ones of the chat rooms, a catalog of extensionsavailable for provisioning in connection with the different ones of thechat rooms. Finally, the method includes responding to a selection ofone of the extensions by one of the moderators by provisioning theselected one of the extensions for use in connection with processing aparticular event in a corresponding one of the chat rooms, the extensionpre-processing the particular event as the particular event occurs inthe chat room before permitting the chat room to process the particularevent.

In another embodiment of the invention, a chat room hosting dataprocessing system is configured for extensible chat rooms in a hostedchat environment. The system includes a hosted chat room environmentthat includes at least one computing device with memory and at least oneprocessor. The system also includes multiple different chat rooms, eachexecuting in a separate process address space of the computing device,each of the chat rooms may include a textual transcript of chat postingsand a video feed of a subject. The system yet further includes one ormore data stores coupled to the host chat room environment of extensionsavailable for provisioning in connection with the different ones of thechat rooms. Finally, the system includes a chat room extension moduleexecuting in the memory of the computing device or a separate computingdevice. The module includes program code enabled to respond to aselection of one of the extensions by a moderator of a corresponding oneof the chat rooms by provisioning the selected one of the extensions foruse in connection with processing a particular event in thecorresponding one of the chat rooms, the extension pre-processing theparticular event as the particular event occurs in the chat room beforepermitting the chat room to process the particular event.

Additional aspects of the invention will be set forth in part in thedescription which follows, and in part will be obvious from thedescription, or may be learned by practice of the invention. The aspectsof the invention will be realized and attained by means of the elementsand combinations particularly pointed out in the appended claims. It isto be understood that both the foregoing general description and thefollowing detailed description are exemplary and explanatory only andare not restrictive of the invention, as claimed.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute partof this specification, illustrate embodiments of the invention andtogether with the description, serve to explain the principles of theinvention. The embodiments illustrated herein are presently preferred,it being understood, however, that the invention is not limited to theprecise arrangements and instrumentalities shown, wherein:

FIG. 1 is a pictorial illustration of a process for extensible chatrooms in a hosted chat environment;

FIG. 2 is a schematic illustration of a chat room hosting dataprocessing system configured for extensible chat rooms in a hosted chatenvironment; and,

FIG. 3 is a flow chart illustrating a process for extensible chat roomsin a hosted chat environment.

DETAILED DESCRIPTION OF THE INVENTION

Embodiments of the invention provide for extensible chat rooms in ahosted chat environment. In accordance with an embodiment of theinvention, a hosted chat environment can be configured to host acrossone more computing devices, a multiplicity of chat rooms for differentchat room providers. Each chat room can execute in a separate processaddress space in a separate thread of execution in one of the computingdevices. A selection of pre-programmed event-handlers can be disposed infixed storage of the hosted chat environment and published for selectionby different ones of the chat room providers.

In response to a selection by a particular one of the providers of aparticular chat room of a particular one of the pre-programmedevent-handlers, the selected pre-programmed event-handler can beintroduced into a process address space for the particular chat room, orin a separate process address space, and configured to trap and processa particular programmatic event occurring for the particular chat room.Further, the particular one of the pre-programmed event handler can bemodified by the particular one of the providers while remaining limitedin execution to the process address space of for the particular chatroom or a separate, isolated event handler process address space. Inthis way, individual chat rooms in the hosted chat environment can beextended safely on an ad hoc basis by different chat room providerswithout compromising the integrity and security of the computing devicesof the hosted chat environment.

In further illustration, FIG. 1 pictorially shows a process forextensible chat rooms in a hosted chat environment. As shown in FIG. 1,a hosted chat environment 110 can be provided that includes differentchat rooms 120 programmatically provided in separate process addressspaces 130 for use by different corresponding sets of chat roomparticipants 140. Each of the chat rooms 120 can be provisioned onbehalf of a chat room moderator (not shown) who can access a catalog 150of extensions 160 to the chat rooms 120. The extensions 160 referencedin the catalog 150 can include program logic in the form of an eventhandler configured to process an event 180 occurring in acorrespondingly extended one of the chat rooms 120.

In this regard, each of the extensions 160 as an event handler can beprogrammed to respond to a particular event 180 in a correspondinglyextended one of the chat rooms 120 and, thereafter, the event handlercan return the particular event 180 to the extended one of the chatrooms 120 for additional processing if any. Examples of the events 180can include an event arising from the arrival into the extended one ofthe chat rooms 120 of one of the participants 140, the egress from theextended one of the chat rooms 120 of one of the participants 140, thedetermination of currency (virtual or actual) held by one of theparticipants 140, the expenditure of currency (virtual or actual) by oneof the participants 140 in the extended one of the chat rooms 120, orthe identification of specific text within a text message in theextended one of the chat rooms 120.

The moderator (not shown) can select one or more of the event handlers160 for application to a moderated one of the chat rooms 120 so as toextend the moderated one of the chat rooms 120. Optionally, themoderator may modify the source code of a selected one of the eventhandlers 170 so as to perform custom handling of a particular one of theevents 180. Thereafter, once provisioned, the selected one of the eventhandlers 170 can act to trap predetermined ones of the events 180destined for the moderated one of the chat rooms 120 and to pre-processthe trapped ones of the events 180 before passing the trapped ones ofthe events 180 to the moderated one of the chat rooms 120.

The process described in connection with FIG. 1 can be implemented in achat room hosting data processing system. In yet further illustration,FIG. 2 schematically shows a chat room hosting data processing systemconfigured for extensible chat rooms in a hosted chat environment. Thesystem can provide a hosted computing environment that includes one ormore computing devices 210 (only a single device shown for the purposeof illustrative simplicity). Each computing device 210 can include oneor more processors and memory. The computing device 210 further canpartition the utilization of the processors and memory into separateprocess address spaces 220 in which correspondingly different chat roomprocesses 230 can execute.

Each chat room process 230 can provide a visual workspace in which avideo feed can be displayed of a remote subject, and a text feed of achat transcript of the commentary of different participants to the chat.Optionally, a handler compliance monitor 260 also can execute in thememory of the computing device 210 and can monitor the performance ofeach chat room process 230 in a corresponding process address space 220.According to embodiments of the present invention, a handler compliancemonitor 260 may execute on a separate computing device (not shown) fromthe computing device 210 whose process address space 220 is partitionedfor use in executing the monitored chat room process 230. The monitor260 can include a configuration to provide a view to an authorized enduser of both processor and memory utilization by each of the chat roomprocesses 230, and also the monitor 260 can direct the termination ofany of the chat room processes 230 determined to have overly consumedthe resources of a corresponding one of the process address spaces 220or a process address space on a separate computing device (not shown),or to otherwise have become inoperable.

Of note, an event handler data store 240 can be coupled to the computingdevice 210 or stored on a separate computing device (not shown). Thedata store 240 can include a set of programmatic files representative ofdifferent event handlers 250A, 250B, 250C, 250D. The different eventhandlers 250A, 250B, 250C, 250D can include an entry/exit event handler250A configured to respond to an event arising from the entry into achat room of a chat room participant, the egress from a chat room of achat room participant, or both. The different event handlers 250A, 250B,250C, 250D also can include a chat content event handler 250B configuredto respond to an event arising from the presence in chat text of aparticular word, phrase or symbol. The different event handlers 250A,250B, 250C, 250D yet further can include a payment event handler 250C.The payment event handler 250C can be configured to response to an eventarising from the presence or utilization of virtual or actual currencyin a chat room. The different event handlers 250A, 250B, 250C, 250D evenyet further can include an access control handler 250D. The accesscontrol handler 250D can perform access control to prevent selectedusers from accessing a portion of a chat room, for instance bypreventing a chat room participant who does not meet certain predefinedcriteria from viewing a video feed associated with the chat room.

A chat room extension module 300 also can execute in the memory of thecomputing device 210. According to embodiments of the present invention,a chat room extension module 300 may execute on a separate computingdevice (not shown) from the computing device 210 whose process addressspace 220 is partitioned for use in executing the monitored chat roomprocess 230. The chat room extension module 300 can include program codethat when executed by one or more processors of the computing device 210or another computer device (not shown) is enabled to provision on behalfof a moderator of a particular one of the chat room processes 230, aselected one of the event handlers 250A, 250B, 250C, 25D. The selectedone of the event handlers 250A, 250B, 250C, 250D can be registered bythe chat room extension module 300 to receive notification of aregistered event occurring in connection with particular one of the chatroom processes 230. The selected one of the event handlers 250A, 250B,250C, 250D further can be afforded by the chat room extension module 300an opportunity to pre-process events conforming to the registered eventbefore passing the registered event into the particular one of the chatroom processes 230.

In even yet further illustration of the operation of the chat roomextension module, FIG. 3 is a flow chart illustrating a process forextensible chat rooms in a hosted chat environment. Beginning in block310, an event occurring in connection with a chat room can beintercepted (trapped) and in block 320, it can be determined whether ornot any event handlers extending the chat room have been provisioned toprocess the trapped event. In decision block 330, if a particular eventhandler is located that had been provisioned to process the trappedevent, the particular event handler can be invoked in block 340 toprocess the trapped event. Thereafter, in block 350 the trapped eventcan be returned to the chat room for further processing.

The present invention may be embodied within a system, a method, acomputer program product or any combination thereof. The computerprogram product may include a computer readable storage medium or mediahaving computer readable program instructions thereon for causing aprocessor to carry out aspects of the present invention. The computerreadable storage medium can be a tangible device that can retain andstore instructions for use by an instruction execution device. Thecomputer readable storage medium may be, for example, but is not limitedto, an electronic storage device, a magnetic storage device, an opticalstorage device, an electromagnetic storage device, a semiconductorstorage device, or any suitable combination of the foregoing.

A non-exhaustive list of more specific examples of the computer readablestorage medium includes the following: a portable computer diskette, ahard disk, a random access memory (RAM), a read-only memory (ROM), anerasable programmable read-only memory (EPROM or Flash memory), a staticrandom access memory (SRAM), a portable compact disc read-only memory(CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk,a mechanically encoded device such as punch-cards or raised structuresin a groove having instructions recorded thereon, and any suitablecombination of the foregoing. A computer readable storage medium, asused herein, is not to be construed as being transitory signals per se,such as radio waves or other freely propagating electromagnetic waves,electromagnetic waves propagating through a waveguide or othertransmission media (e.g., light pulses passing through a fiber-opticcable), or electrical signals transmitted through a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

Finally, the terminology used herein is for the purpose of describingparticular embodiments only and is not intended to be limiting of theinvention. As used herein, the singular forms “a”, “an” and “the” areintended to include the plural forms as well, unless the context clearlyindicates otherwise. It will be further understood that the terms“comprises” and/or “comprising,” when used in this specification,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

Having thus described the invention of the present application in detailand by reference to embodiments thereof, it will be apparent thatmodifications and variations are possible without departing from thescope of the invention defined in the appended claims as follows:

I claim:
 1. A method for extensible chat rooms in a hosted chat environment, the method comprising: providing multiple different chat rooms, each executing in a separate process address space of at least one computing device in a hosted chat room environment, each of the chat rooms including a textual transcript of chat postings and a video feed of a subject; displaying to different moderators of different ones of the chat rooms, a catalog of extensions available for provisioning in connection with the different ones of the chat rooms; and, responding to a selection of one of the extensions by one of the moderators by provisioning the selected one of the extensions for use in connection with processing a particular event in a corresponding one of the chat rooms, the extension pre-processing the particular event as the particular event occurs in the chat room before permitting the chat room to process the particular event. 